package com.hhq.sso.system.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hhq.sso.system.entity.Role;

import jakarta.validation.constraints.NotEmpty;

/**
 * 服务类
 *
 * @author Chill
 */
public interface IRoleService extends IService<Role> {

    /**
     * 自定义分页
     *
     * @param page
     * @param role
     * @return
     */
    IPage<Role> selectRolePage(IPage<Role> page, Role role);

    /**
     * 树形结构
     *
     * @param tenantId
     * @return
     */
    List<Role> tree(String tenantId);

    /**
     * 权限配置
     *
     * @param roleIds 角色id集合
     * @param menuIds 菜单id集合
     * @return 是否成功
     */
    boolean grant(@NotEmpty List<Long> roleIds, @NotEmpty List<Long> menuIds, List<Long> dataScopeIds);

    /**
     * 获取角色ID
     *
     * @param tenantId
     * @param roleNames
     * @return
     */
    String getRoleIds(String tenantId, String roleNames);

    /**
     * 获取角色名
     *
     * @param roleIds
     * @return
     */
    List<String> getRoleNames(String roleIds);

}
